
""" 这个函数模拟了一个简单的战斗场景，其中两个角色交替进行攻击和反击。函数的输入包括两个列表（代表每个角色的攻击选项），以及两个字符串（代表这两个角色的名字）。
函数的输出是一个描述战斗结果的字符串，其中包括每个角色的攻击和反击的伤害值。如果角色的攻击或反击是大成功或大失败，那么伤害值可能会被加倍或减半。
以下是一些可能的输出情况：

如果两个角色的攻击都是普通攻击（即没有大成功或大失败），那么输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
aa攻击伤害为3，bb反击伤害为7

如果一个角色的攻击是大成功，那么他的攻击伤害将会加倍，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
aa攻击大成功！
aa攻击伤害为6，bb反击伤害为7
如果一个角色的攻击是大失败，那么他的攻击伤害将会减半，输出将是类似于这样的字符串：

【1d10=3】,【1d10=7】
aa攻击大失败！bb反击伤害翻倍
bb反击伤害为14

如果两个角色的攻击都是大成功或大失败，那么他们的攻击伤害将会相互抵消，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
【1d2=1】，【1d2=1】，两方大成功互相抵消

如果一个角色的攻击是大成功，另一个角色的攻击是大失败，那么大成功的角色的攻击伤害将会加倍，而大失败的角色攻击伤害将会减半，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
【1d2=1】，【1d2=2】，aa大成功，bb大失败，aa攻击伤害*4倍！
aa攻击伤害为12 """
import random
#测试函数放在底部，改参数就能出对应结果
""" 这个函数模拟了一个简单的战斗场景，其中两个角色交替进行攻击和反击。函数的输入包括两个列表（代表每个角色的攻击选项），以及两个字符串（代表这两个角色的名字）。
函数的输出是一个描述战斗结果的字符串，其中包括每个角色的攻击和反击的伤害值。如果角色的攻击或反击是大成功或大失败，那么伤害值可能会被加倍或减半。
以下是一些可能的输出情况：

如果两个角色的攻击都是普通攻击（即没有大成功或大失败），那么输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
aa攻击伤害为3，bb反击伤害为7

如果一个角色的攻击是大成功，那么他的攻击伤害将会加倍，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
aa攻击大成功！
aa攻击伤害为6，bb反击伤害为7
如果一个角色的攻击是大失败，那么他的攻击伤害将会减半，输出将是类似于这样的字符串：

【1d10=3】,【1d10=7】
aa攻击大失败！bb反击伤害翻倍
bb反击伤害为14

如果两个角色的攻击都是大成功或大失败，那么他们的攻击伤害将会相互抵消，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
【1d2=1】，【1d2=1】，两方大成功互相抵消

如果一个角色的攻击是大成功，另一个角色的攻击是大失败，那么大成功的角色的攻击伤害将会加倍，而大失败的角色攻击伤害将会减半，输出将是类似于这样的字符串：
【1d10=3】,【1d10=7】
【1d2=1】，【1d2=2】，aa大成功，bb大失败，aa攻击伤害*4倍！
aa攻击伤害为12 """



def attack_damage(list1, list2, str1, str2):
    print(f"{str1}攻击——{str2}反击")
    for i in range(len(list1)):
        print(f"{i+1}.{list1[i]}——{list2[i]}")
    element1 = random.choice(list1)
    element2 = random.choice(list2)
    index1 = list1.index(element1)+1
    index2 = list2.index(element2)+1

    if isinstance(element1, int) and isinstance(element2, int):
        return f"【1d10={index1}】,【1d10={index2}】\n{str1}攻击伤害为{element1}，{str2}反击伤害为{element2}"
    elif isinstance(element1, str) and isinstance(element2, int):
        result = random.choice([1, 2])
        if result == 1:
            element1 = random.choice(list1[:-2]) * 2
            return f"【1d10={index1}】,【1d2=1】,【1d10={index2}】\n{str1}攻击大成功！\n{str1}攻击伤害为{element1}，{str2}反击伤害为{element2}"
        else:
            element2 *= 2
            return f"【1d10={index1}】,【1d2=2】,【1d10={index2}】\n{str1}攻击大失败！{str2}反击伤害翻倍\n{str2}反击伤害为{element2}"
    elif isinstance(element1, int) and isinstance(element2, str):
        result = random.choice([1, 2])
        if result == 1:
            element2 = random.choice(list2[:-2]) * 2
            return f"【1d10={index1}】,【1d10={index2}】,【1d2=1】\n{str2}反击大成功！\n{str1}攻击伤害为{element1}，{str2}反击伤害为{element2}"
        else:
            element1 *= 2
            return f"【1d10={index1}】,【1d10={index2}】,【1d2=2】\n{str2}反击大失败！{str1}攻击伤害翻倍\n{str1}攻击伤害为{element1}"
    else:
        result1 = random.choice([1, 2])
        result2 = random.choice([1, 2])
        if result1 == result2:
            if result1 == 1:
                return f"【1d10={index1}】,【1d10={index2}】\n【1d2=1】，【1d2=1】，两方大成功互相抵消\n{attack_damage(list1, list2, str1, str2)}"
            else:
                return f"【1d10={index1}】,【1d10={index2}】\n【1d2=2】，【1d2=2】，两方大失败互相抵消\n{attack_damage(list1, list2, str1, str2)}"
        else:
            if result1 == 1:
                element1 = random.choice(list1[:-2]) * 4
                return f"【1d10={index1}】,【1d10={index2}】\n【1d2=1】，【1d2=2】，{str1}大成功，{str2}大失败，{str1}攻击伤害*4倍！\n{str1}攻击伤害为{element1}"
            else:
                element2 = random.choice(list2[:-2]) * 4
                return f"【1d10={index1}】,【1d10={index2}】\n【1d2=2】，【1d2=1】，{str2}大成功，{str1}大失败，{str2}反击伤害*4倍！\n{str2}反击伤害为{element2}"

""" # 测试函数
list1 = [0, 1, 1, 2, 2, 3, 3, 4, 4, '大']
list2 = [0, 0, 0, 1, 1, 1, 2, 2, 3, '大']


str1 = "甲"
str2 = "乙"


print(attack_damage(list1, list2, str1, str2)) """